/* eslint-disable consistent-return */
/*
 * @Author: xishanxu
 * @LastEditors: 幸永旭
 * @LastEditTime: 2020-07-10 17:43:29
 */
import axios from 'axios';
// import { notification } from 'antd';
import { getToken } from './authority';
import GlobalLoading from '../layouts/GlobalLoading';

const globalLoading = new GlobalLoading('');
//  window.console.log((globalLoading);

const mockAjax = axios.create({
  baseURL: 'http://115.29.150.252:40001/mock/40/admin',
  timeout: 10000,
});

const testAjax = axios.create({
  baseURL: 'https://api.mlcgxx.cn',
  timeout: 10000,
});

// const ajax = axios.create({
//   baseURL: '正式域名',
//   timeout: 10000,
// });

// mock
mockAjax.interceptors.request.use(
  config => {
    if (config.headers.loading !== false) {
      globalLoading.show();
    }
    return config;
  },
  // Toast.loading('loading...', 0, () => {}, true)

  // config
);
mockAjax.interceptors.response.use(
  resp => {
    globalLoading.hide();
    return resp.data;
  },
  // Toast.hide()
);

// test
testAjax.interceptors.request.use(
  (config: any) => {
    if (getToken('adminToken')) {
      const user = JSON.parse(getToken('adminToken').toString());
      // eslint-disable-next-line no-param-reassign
      if (user) config.headers.Authorization = `Bearer ${user.data && user.data.access_token}`;
    }
    return config;
  },
  error => Promise.reject(error),
);

testAjax.interceptors.response.use(
  resp => {
    try {
      if (resp.data.code >= 200 && resp.data.code < 300) {
        return resp.data;
        // Toast.info(resp.data.message, 1)
      }
      return {
        data: {},
      };
    } catch (err) {
      window.console.error(err);
    }
  },
  (error: any) => {
    window.console.log(error);
    return error;
  },
  // try {
  //   // //  window.console.log((error, 122);
  //   if (error.response.status < 500) {
  //     /* eslint-disable */
  //     switch (error.response.status) {
  //       case 400:
  //       case 401:
  //       case 402: {
  //         notification.error({
  //           message: error.response.data.message,
  //         });
  //       }
  //       default: {
  //         return Promise.reject(error.response);
  //       }
  //     }
  //   } else {
  //     // history.go(0);
  //     return;
  //   }
  // } catch (error) {
  //   window.console.error(error);
  //   return error;
  // }
);

export { mockAjax, testAjax };
